package br.com.JZSolution.domineduplex.gui.util;

import java.io.File;
import java.text.NumberFormat;

import javax.swing.JOptionPane;

import br.com.JZSolution.domineduplex.DomineDuplex;
import br.com.JZSolution.domineduplex.utils.ConversorDeUnidades;

public class ComunicadorDeMensagens {
	private static NumberFormat nf = NumberFormat.getInstance(); 
	
	static{
		nf.setMinimumFractionDigits(0);
		nf.setMaximumFractionDigits(2);
	}
	
	/**
	 * Checa a aceitacao do arquivo mostrando seus dados ao destinatario
	 * @param tamanhoArquivo
	 * @param nomeArquivo
	 * @param remetente
	 * @return int do JOptionPane
	 */
	public static int aceitarArquivo(long tamanhoArquivo, String nomeArquivo, String remetente){
		String tamanhoFormatado = ConversorDeUnidades.tratarTamanhoDeArquivo(tamanhoArquivo);
		
		int opt = JOptionPane.showConfirmDialog(DomineDuplex.getInstance().getMainframe()
				,"<html>Deseja aceitar o arquivo "+nomeArquivo +"<br> com tamanho de "+ tamanhoFormatado +" enviado por "+remetente+"?<html>",
				"Solicitação para envio de arquivo",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); 
		
		File arquivo = new File(DomineDuplex.getInstance().getDiretorioDeRecepcao()+
				File.separatorChar + nomeArquivo);
		
		if(arquivo.exists() && opt == 0){
			opt = JOptionPane.showConfirmDialog(DomineDuplex.getInstance().getMainframe(),
					"O arquivo já existe em sua pasta de recepção, deseja sobrescrevê-lo?",
					"Solicitação para envio de arquivo",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); 
		}	
		
		return opt;
	}
	
	
	/**
	 * Mostra a mensagem se o arquivo for ou não aceito
	 * @param true, arquivo aceito, false arquivo rejeitado
	 */
	public static void arquivoAceito(boolean aceito) {
		String str = "";
		
		if(aceito){
			str = "O arquivo foi aceito";
		}else {
			str = "O arquivo não foi aceito";
		}
		JOptionPane.showMessageDialog(DomineDuplex.getInstance().getMainframe(),str
				,"Resposta da solicitação de envio", JOptionPane.INFORMATION_MESSAGE);
	}
	
	/**
	 * Mensagem de Erro
	 * @param mensagem
	 */
	public static void erro(String mensagem) {
		erro(mensagem, "Erro");
	}
	
	/**
	 * Mensagem de Erro
	 * @param mensagem
	 * @param titulo
	 */
	public static void erro(String mensagem, String titulo) {
		JOptionPane.showMessageDialog(DomineDuplex.getInstance().getMainframe(),mensagem
				,titulo, JOptionPane.ERROR_MESSAGE);
	}
}
